package com.job.DQH.dqh715.inClass;

/**
 * 字符串String是常用的一个类型，web阶段里数据的默认形式都是String
 * String是固定长度的字符序列，Java默认字符串字面值是常量
 */
public class StringDemo {
    public static void main(String[] args) {
        //如果直接赋值常量，那么这个字符串存储在常量区，被视为常量
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);//T，常量比的是值。另，在Java中常量的值一样，那么地址也一样
        System.out.println(s1.indexOf("b"));//但是s1与s2都是引用类型可以调类的方法

        //使用new关键字创建的String是对象，被分配在堆中
        String s3 = new String("abc");
        String s4 = new String("abc");
        System.out.println(s3 == s4);//F，引用比的是地址
        //注：不要用.equals()方法，因为String的这个方法已经被重写了，比的就是字符串的值

        /*
         *由于常量字符串拼接需要为添加的字符串与新字符串创建内存，故常量字符串的拼接十分效率低下
         */
    }
}
